package com.xuecheng.media.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.api.media.model.dto.MediaDTO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.common.domain.response.RestResponse;
import com.xuecheng.media.entity.Media;

/**
 * <p>
 * 媒资信息 服务类
 * </p>
 *
 * @author itcast
 * @since 2021-08-10
 */
public interface MediaService extends IService<Media> {



    /**
     * 保存媒资信息
     * @param dto --MediaDTO--将前端传入数据转DTO
     * @return --MediaDTO --返回DTO类
     */
    MediaDTO createMedia(MediaDTO dto);

    /**
     * 分页查询媒资信息
     * @param params --PageRequestParams--查收分页查询数据--当前页，每页条数等
     * @param mediaDTO --MediaDTO
     * @return --PageVO<MediaDTO>--包 MediaDto 信息的分页数据
     */
    PageVO<MediaDTO> queryMedia(PageRequestParams params,MediaDTO mediaDTO);

    /**
     * 预览媒资视频信息
     * @param mediaId  --Long-媒资ID
     * @param companyId --Long 机构ID
     * @return --String--视频播放地址
     */
    String getMediaURL(Long mediaId,Long companyId);

    /**
     * 根据 媒资ID 机构ID删除媒资信息
     * @param mediaId --Long-媒资ID
     * @param companyId --Long 机构ID
     */
    void removeMedia(Long mediaId,Long companyId);

    /**
     * 运营--分页查询全部媒资信息
     * @param params --PageRequestParams--查收分页查询数据--当前页，每页条数等
     * @param mediaDTO -MediaDTO
     * @return --PageVO<MediaDTO>--包 MediaDto 信息的分页数据
     */
    PageVO<MediaDTO> queryMediaM(PageRequestParams params,MediaDTO mediaDTO);

    /**
     * 运营--审核媒资信息
     * @param mediaDTO --MediaDTO--传入要审核的媒资数据
     */
    void createMediaM(MediaDTO mediaDTO);

    /**
     * 根据ID查询媒资信息
     * @param mediaId --媒资ID
     * @return --RestResponse<T>
     */
    RestResponse<MediaDTO> getByIdMedia(Long mediaId);
}
